Shard Allocation এবং Rebalancing

Latest Technologies - ইলাস্টিকসার্চ (ElasticSearch) - Elasticsearch Cluster এবং Shard Management
441

Elasticsearch-এ Shard Allocation

Elasticsearch-এ শার্ড অ্যালোকেশন কনফিগার করার জন্য বেশ কিছু সেটিংস এবং প্যারামিটার আছে যা cluster এবং node level এ প্রভাব ফেলে। কিছু গুরুত্বপূর্ণ কনসেপ্ট ও কনফিগারেশন:

Cluster.routing.allocation.enable:

  • এটি শার্ড অ্যালোকেশন নিয়ন্ত্রণ করার জন্য ব্যবহৃত হয়।
  • ভ্যালু হতে পারে:
    • "all": সমস্ত প্রাইমারি এবং রেপ্লিকা শার্ড অ্যালোকেট করার অনুমতি দেয়।
    • "primaries": শুধুমাত্র প্রাইমারি শার্ডগুলো অ্যালোকেট করা হয়।
    • "new_primaries": নতুন প্রাইমারি শার্ড অ্যালোকেট করার অনুমতি দেয়।
    • "none": কোনো শার্ডই অ্যালোকেট করা হবে না।

Awareness Allocation:

  • শার্ডগুলো যাতে নির্দিষ্ট জোন বা rack-এ অবস্থিত থাকে তা নিশ্চিত করতে Elasticsearch-এ zone awareness এবং rack awareness কনফিগার করা যায়। এটি নিশ্চিত করে যে একটি জোন ডাউন হয়ে গেলেও অন্য জোনে শার্ডের কপি থাকে।
  • উদাহরণ:
  • এখানে, শার্ডগুলোকে বিভিন্ন rack_id-তে বিতরণ করা হবে।
{
  "cluster.routing.allocation.awareness.attributes": "rack_id"
}

Allocation Filtering:

  • নির্দিষ্ট শার্ড বা ইন্ডেক্সগুলোকে নির্দিষ্ট নোডে অ্যালোকেট করতে এটি ব্যবহার করা হয়।
  • উদাহরণ:
  • এই সেটিংসটি নিশ্চিত করবে যে শার্ডগুলি শুধুমাত্র node-1 এ অ্যালোকেট হবে।
{
  "cluster.routing.allocation.include._name": "node-1"
}

Elasticsearch-এ Shard Rebalancing

Elasticsearch-এ Shard Rebalancing স্বয়ংক্রিয়ভাবে কাজ করে, কিন্তু কিছু সেটিংস আছে যা কাস্টমাইজ করা যায়:

Cluster.routing.rebalance.enable:

  • রিব্যালেন্সিং কন্ট্রোল করার জন্য ব্যবহৃত হয়।
  • ভ্যালু হতে পারে:
    • "all": সমস্ত শার্ড রিব্যালেন্স করা হয়।
    • "primaries": শুধু প্রাইমারি শার্ডগুলো রিব্যালেন্স করা হয়।
    • "replicas": শুধু রেপ্লিকা শার্ড রিব্যালেন্স করা হয়।
    • "none": কোনো শার্ড রিব্যালেন্স করা হবে না।

Rebalance Throttling:

  • একবারে কতগুলো শার্ড রিব্যালেন্স হতে পারবে তা নির্ধারণ করতে cluster.routing.allocation.cluster_concurrent_rebalance প্যারামিটারটি ব্যবহার করা যায়।
  • উদাহরণ:
  • এটি নিশ্চিত করবে যে একবারে সর্বোচ্চ ২টি শার্ড রিব্যালেন্স হবে।
{
  "cluster.routing.allocation.cluster_concurrent_rebalance": 2
}

Disk-based Shard Allocation:

  • Elasticsearch নোডগুলোর ডিস্ট্রিবিউশন মনিটর করে, যাতে ডিস্ক স্পেস কমে গেলে স্বয়ংক্রিয়ভাবে শার্ডগুলো অন্য নোডে মুভ করাতে পারে।
  • প্যারামিটারগুলো:
    • "cluster.routing.allocation.disk.threshold_enabled": true
    • "cluster.routing.allocation.disk.watermark.low": "85%" (ডিফল্ট)
    • "cluster.routing.allocation.disk.watermark.high": "90%" (ডিফল্ট)

Elasticsearch-এ Shard Allocation এবং Rebalancing মনিটর করা

  1. Cluster Health API:
    • GET /_cluster/health দিয়ে ক্লাস্টারের হেলথ চেক করতে পারেন।
  2. Cluster Allocation Explanation API:
    • GET /_cluster/allocation/explain দিয়ে জানতে পারেন কেন কোনো শার্ড নির্দিষ্ট নোডে অ্যালোকেট হয়নি বা মুভ হয়নি।

Practical Tips:

  • Shard Size: সাধারণত, একটি শার্ডের সাইজ ১০-৫০ গিগাবাইটের মধ্যে রাখার চেষ্টা করবেন, কারণ খুব বড় শার্ড ক্লাস্টারের পারফরম্যান্সে প্রভাব ফেলতে পারে।
  • Shard Count Optimization: শার্ডের সংখ্যা অত্যধিক হলে পারফরম্যান্স সমস্যার সম্মুখীন হতে পারেন। সঠিক সাইজিং এবং কনফিগারেশন ক্লাস্টারের স্কেলেবিলিটি বাড়ায়।
  • Monitoring and Alerts: শার্ড অ্যালোকেশন ও রিব্যালেন্সিং মনিটরিং-এর জন্য Kibana এবং Elasticsearch monitoring plugin ব্যবহার করতে পারেন।

এভাবে Elasticsearch-এ shard allocation এবং rebalancing কনফিগার করা এবং মনিটর করা যায়, যা পারফরম্যান্স এবং রিলায়েবিলিটি নিশ্চিত করতে সাহায্য করে।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...